{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Grove I2C Barometric Pressure Sensor module\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Aim\n",
    "\n",
    "* This notebook illustrates how to use available APIs for the Grove I2C Barometric Sensor module on PYNQ-Z2 PMOD py_interfaces.\n",
    "\n",
    "\n",
    "## References\n",
    "* [Grove I2C Barometer](https://www.seeedstudio.com/Grove-High-Precision-Barometer-Sensor-DPS310-p-4397.html)    \n",
    "* [PYNQ Grove Adapter](https://store.digilentinc.com/pynq-grove-system-add-on-board/)   \n",
    "* [Grove Base Shield V2.0](https://www.seeedstudio.com/Base-Shield-V2.html)   \n",
    "\n",
    "## Last revised\n",
    "* 27 July 2021\n",
    "    + Initial version\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load _base_ Overlay"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-box alert-info\">\n",
    "Note that we load the base bitstream only once to use Grove module with PYNQ Grove Adapter and SEEED Grove Base Shield V2.0<br>\n",
    "Please make sure you run the following cell before running either of the py_interfaces \n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "try {\n",
       "require(['notebook/js/codecell'], function(codecell) {\n",
       "  codecell.CodeCell.options_default.highlight_modes[\n",
       "      'magic_text/x-csrc'] = {'reg':[/^%%microblaze/]};\n",
       "  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){\n",
       "      Jupyter.notebook.get_cells().map(function(cell){\n",
       "          if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;\n",
       "  });\n",
       "});\n",
       "} catch (e) {};\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "\n",
       "try {\n",
       "require(['notebook/js/codecell'], function(codecell) {\n",
       "  codecell.CodeCell.options_default.highlight_modes[\n",
       "      'magic_text/x-csrc'] = {'reg':[/^%%pybind11/]};\n",
       "  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){\n",
       "      Jupyter.notebook.get_cells().map(function(cell){\n",
       "          if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;\n",
       "  });\n",
       "});\n",
       "} catch (e) {};\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pynq.overlays.base import BaseOverlay\n",
    "from pynq_peripherals import ArduinoSEEEDGroveAdapter, PmodGroveAdapter\n",
    "base = BaseOverlay('base.bit')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using Grove I2C Barometric Sensor with Grove Base Shield V2.0 (Arduino)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-box alert-warning\"><ul>\n",
    "    <h4 class=\"alert-heading\">Make Physical Connections </h4>\n",
    "    <li>Insert the SEEED Grove Base Shield py_into the Arduino connector on the board. Connect the Grove I2C Barometric Sensor to one of the connectors labeled I2C.</li></ul>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Adapter configuration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "adapter=ArduinoSEEEDGroveAdapter(base.ARDUINO, I2C='grove_barometer')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define device object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "barometer = adapter.I2C"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading from the Grove I2C Barometer"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Configure the barometric sensor for your application\n",
    "\n",
    "The Barometric sensor (DPS310) has three operationg modes:\n",
    "* Standby Mode (default)\n",
    "* Command Mode\n",
    "* Background Mode\n",
    "\n",
    "The type of measurement done by sensor can be set using below mapping:\n",
    "\n",
    "* o - Idle / Stop background measurement\n",
    "* Command Mode\n",
    "* 1 - Pressure measurement\n",
    "* 2 - Temperature measurement\n",
    "* 3 - na.\n",
    "* 4 - na.\n",
    "* * Background Mode\n",
    "* 5 - Continous pressure measurement\n",
    "* 7 - Continous temperature measurement\n",
    "* 8 - Continous pressure and temperature measurement\n",
    "\n",
    "Below table shows the supported oversample rate for temperature and pressure sampling to adjust presicion.\n",
    "This specifies the number of sensor measurements used py_internally to generate one sensor output result:\n",
    "\n",
    "* 0 - single sample (Default) - Measurement time 3.6 ms.\n",
    "* 1 - 2   samples per measurement\n",
    "* 2 - 4   samples per measurement\n",
    "* 3 - 8   samples per measurement\n",
    "* 4 - 16  samples per measurement\n",
    "* 5 - 32  samples per measurement\n",
    "* 6 - 64  samples per measurement\n",
    "* 7 - 128 samples per measurement\n",
    "\n",
    "It is possible to specify the number of measurement taken per second in case of Background Mode:\n",
    "\n",
    "* 0 - 1 measurements pr. sec.\n",
    "* 1 - 2 measurements pr. sec.\n",
    "* 2 - 4 measurements pr. sec.\n",
    "* 3 - 8 measurements pr. sec.\n",
    "* 4 - 16 measurements pr. sec.\n",
    "* 5 - 32 measurements pr. sec.\n",
    "* 6 - 64 measurements pr. sec.\n",
    "* 7 - 128 measurements pr. sec"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set pressure sensor oversample rate at 16 samples per measuremet \n",
    "barometer.pressure_oversample_rate(4) \n",
    "\n",
    "# Set remperature sensor oversample rate at 16 samples per measuremet \n",
    "barometer.temperature_oversample_rate(4) \n",
    "\n",
    "#configure the sensor\n",
    "if (barometer.configure()):\n",
    "    print(\"Error in Configurtion\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "841.88427734375"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get compesated pressure reading\n",
    "barometer.pressure()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "30.626235961914062"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get compesated temperature reading\n",
    "barometer.temperature()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "## Using Grove I2C Barometric Sensor with PYNQ Grove Adapter (PMOD)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-box alert-warning\"><ul>\n",
    "    <h4 class=\"alert-heading\">Make Physical Connections </h4>\n",
    "    <li>Connect the PYNQ Grove Adapter to PMODB connector.  Connect the Grove I2C Barometric Sensor module to the G3 connector of the Adapter.</li></ul>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Adapter configuration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pynq.overlays.base import BaseOverlay\n",
    "from pynq_peripherals import ArduinoSEEEDGroveAdapter, PmodGroveAdapter\n",
    "base = BaseOverlay('base.bit')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "adapter=PmodGroveAdapter(base.PMODB, G3='grove_barometer')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define device object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "barometer=adapter.G3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Configure the barometric sensor for your application"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set pressure sensor oversample rate at 16 samples per measuremet \n",
    "barometer.pressure_oversample_rate(4) \n",
    "\n",
    "# Set remperature sensor oversample rate at 16 samples per measuremet \n",
    "barometer.temperature_oversample_rate(4) \n",
    "\n",
    "#configure the sensor\n",
    "if (barometer.configure()):\n",
    "    print(\"Error in Configurtion\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading from the Grove I2C Barometeric Sensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "840.4757690429688"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get compesated pressure reading\n",
    "barometer.pressure()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "32.25743865966797"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get compesated temprature reading\n",
    "barometer.temperature()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Using Fifo in Background mode"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set pressure sensor oversample rate at 16 samples per measuremet \n",
    "barometer.pressure_oversample_rate(7) \n",
    "\n",
    "# Set temperature sensor oversample rate at 16 samples per measuremet \n",
    "barometer.temperature_oversample_rate(7) \n",
    "\n",
    "# Set pressure sensor measurement rate at 16 samples per measuremet \n",
    "barometer.pressure_measurement_rate(7) \n",
    "\n",
    "# Set temperature sensor measurement rate at 16 samples per measuremet \n",
    "barometer.temperature_measurement_rate(7)  \n",
    "\n",
    "# Set sensor mode to background mode with temo and pressure continuous measurement \n",
    "barometer.mode(7) \n",
    "\n",
    "#configure the sensor\n",
    "if (barometer.configure()):\n",
    "    print(\"Error in Configurtion\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "barometer.enable_fifo(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#7 correspnds to continous pressure and temperature measurement\n",
    "barometer.start_conversion(7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xadd57ad0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAERCAYAAABGhLFFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xl8lNX1+PHPyUwWsgBCwhK2sASUHY1oURYXFBdA64ZaxdZKrVrr11qL/VWrtrVq69baaq1LXaqi4BIriju4AgESEvawJ2EJCYQESEIy5/fHPMEhTJIJZDKT5Lxfr7wyc5/7PHNmIDm59z73XlFVjDHGmKYWEeoAjDHGtE6WYIwxxgSFJRhjjDFBYQnGGGNMUFiCMcYYExSWYIwxxgSFJZh6iMhIEflORDJFJENERtdTt72I5InIkz5lJ4lItojkisjfRERqnfMrEVERSWwgjokissS51hIROfPY350xxgSXJRiHiEwQkf/UKn4YuE9VRwL3OM/r8gdgQa2yp4AbgFTna5LP6/UCzgG2BBDeLmCyqg4DpgMvB3COMcaElCWY+inQ3nncASjwV0lETgK6Ah/5lHUH2qvqd+qdzfoScJHPaY8BdzqvUXNOnIg8LyKLRGSZiEwFUNVlqlrz2iuAdiIS3STv0BhjgsQd6gDC3G3APBH5K95kPKZ2BRGJAB4BfgSc7XOoB5Dn8zzPKcNJHPmqmlWr1+z/AZ+p6k9EpCOwSEQ+UdV9PnUuAZaqasUxvztjjAmiNp9gRGQhEA3EA51EJNM59BvgAuD/VHWOiFwOPMfhSQTgJmCuqubVShZ1vV4s8Fu83WO1nQNMEZE7nOcxQG9glXPuEOChOs41xpiwIrYWmZeITACuU9XrfMpKgI6qqs4AfYmqtq913n+BsYAHb5KKAv4JPAF8rqrHO/WuBCYATwKfAvudS/TE2/U2GngfuEpV1/iJryfwGfBjVf26ad61McYEj43B1K8AGO88PhNYV7uCql6tqr1VNQW4A3hJVWeq6jZgr4ic6iSna4F3VTVbVbuoaopzTh5woqpuB+YBv6i520xERjnfO+JNPjMtuRhjWgpLMPW7AXhERLKAB4AZACKSJiLPBnD+TcCzQC6wHviggfp/ACKB5SKywnkOcAswALjHuWU6U0S6NPrdGGNMM7IuMmOMMUFhLRhjjDFB0abvIktMTNSUlJRQh2GMMS3KkiVLdqlqUkP12nSCSUlJISMjI9RhGGNMiyIimwOpZ11kxhhjgsISjDHGmKCwBGOMMSYoLMEYY4wJCkswxhhjgsISjDHGmKCwBGOMMSYo2vQ8GGNMcKkqhWUVrNleyprtpew9cLDe+gO7JXDh8ORmis4EmyUYY0yT2FdRxWonkazZvpc1O7yPd+//PqnUt2VSzbKIBXsOMGNc/yBH65/H4w0iIqLhvZ1MwyzBGGOOWWn5QSY+uoDte8sBiItyMbBbApOGdmNg1wQGdUtgUNcEOsfXvdN3tUf55evLeGDuatpFurjmBynNFL2Xx6Pc8FIGOQUl3H3hYC4Y1p1ANhE0dbMEY4w5Zh/kbGf73nIeuHgYY1MT6dGxXaNbAa4I4bErRlJ+0MPd764gJtLFZWm9ghTxkZ7/eiOfrt5JcocYbnl1GbNSt3LflCH0S4pvthhaGxvkN8Ycs3cz8+nTOZYrR/eiV6fYo+5iinRF8ORVoxibmshv5iznvayCJo7Uv5z8Eh76cDUTB3dlwZ1ncO/kwWRu2cOkx7/k0Y/WUH6wulniaG0swRhjjsn2knK+WV/ERSN7NEmXUkyki2euSSOtTyf+b1Ymn6zc0QRR1m1/ZRW/fH0ZneKieOiS4bhdEVx3Wl8+/dV4zhvWjb99lss5jy3g8zU7gxpHa2QJxhhzTNKz8lGFi0b1aLJrtoty8dx1aQzp0YGb/ruUL9cVNtm1a/vD/1axYdc+Hr18JJ3iog6Vd2kfwxPTRvHqT0/B7RJ+/MJibnx5CQV7DgQtltbGEowx5pi8vayAkb060jcxrkmvmxATyYs/Ppl+SXHc8FIGizYWN+n1AT7M2c5ri7YwY1w/ThuQ6LfOmAGJfPjLcfz63EF8sXYnU578msoqT5PH0hpZgjHGHLXV2/eyatteLm7C1ouvjrFRvPLTU+jRsR0/+c9iMrfuabJrbys5wMy3ljOsRwd+NXFQvXWj3BHcfMYAZk46nl1lFew5UNlkcbRmlmCMMUftnWUFuCKEC4Z3D9prJMZH89+fnkqnuCimP7+IrcX7j/ma1R7l9llZVFZ5eGLaSKLcgf0qbN8uEoB9FTboHwhLMMaYo+LxKO9m5jMuNZHEeua3NIVuHWJ45fpTqPYov56ddWhC5NH614L1fLuhiHsbeRtyfLR3ZkdZedUxvX5bEdQEIyKTRGSNiOSKyEw/x6NFZJZzfKGIpPgcGy4i34rIChHJFpEYp/wk53muiPxNnNtWRKSTiHwsIuuc78cF870Z09Yt3FjMtpLyJh3cr0/vzrH87oIT+G5DMS99u+mor5O1dQ+PfrSWC4Z157KTejbq3EMJpsISTCCClmBExAX8AzgPGAxcKSKDa1W7HtitqgOAx4CHnHPdwCvAjao6BJgA1Kw38RRwA5DqfE1yymcCn6pqKvCp89wYEyTvZuYTF+XinMHdmu01rzi5FxMGJfHgh6vZuGtfo88vq/DektwlIZoHLh7W6Nuq45wEs88STECC2YIZDeSq6gZVrQReB6bWqjMVeNF5PBs4y2mRnAMsV9UsAFUtUtVqEekOtFfV71RVgZeAi/xc60WfcmNMEys/WM372ds4d2g32kW5mu11RYQHfzicKFcEd7yZRXUjuso8HuXud3LYUryfx6eNokNsZKNfPz7GWjCNEcwE0wPY6vM8zynzW0dVq4ASoDMwEFARmSciS0XkTp/6eXVcs6uqbnMebwe6+gtKRGaISIaIZBQWBu/eemNas89X76S0vCpod4/Vp1uHGO6dMoQlm3fz3FcbAjqn2qPMfGs5by/L57azBzK6b6ejem3rImuccB3kdwOnA1c73y8WkbMCPdlp3fj900ZVn1HVNFVNS0pKapJgjWlr3l6WT1JCNGP6+587EmwXj+rBxMFd+etHa1m3o7TeugerPfzfrEzeyMjj1rNS+cWZA476da2LrHGCmWDyAd+V6no6ZX7rOOMuHYAivC2TBaq6S1X3A3OBE536vqNyvtfc4XSh4Xy3dR2MCYI9+yv5fM1Opo5IxhWiZe1FhAcuHkZclIs73syiqtr/xMeKqmpu/u9S0rMK+M2k47l94sBjWs4mNtKFiLVgAhXMBLMYSBWRviISBUwD0mvVSQemO48vBT5zWh/zgGEiEusknvHASqcLbK+InOqM1VwLvOvnWtN9yo0xTej97G0crNZmu3usLkkJ0fzhoqFk5ZXw9Pz1Rxw/UFnNDS8t4aOVO7hvyhB+PuHY95iJiBDiotyWYAIUtATjjKncgjdZrALeUNUVInK/iExxqj0HdBaRXOB2nDu/VHU38CjeJJUJLFXV951zbgKeBXKB9cAHTvmDwEQRWQec7Tw3xjSxd5blM6BLPEOS24c6FC4cnswFw7vzxKfrWFmw91B5WUUV172wiC/XFfLwJcOZPialyV4zLtplXWQBCup+MKo6F2/3lm/ZPT6Py4HL6jj3Fby3KtcuzwCG+ikvAgIepzHGNN7W4v0s3rSbX587KGw24/rD1KEs3FDEr97M4t2bT+NAZTXX/WcRy/NKePyKkUwd2bQtrfhot83kD5BtOGaMCdi7md4hzykjkkMcyfc6xUXxwMXDmPHyEh6Yu4pFG4vJ3VnGP68+kXOHNP0cnfhoN6XWggmIJRhjTEBUlbeX5TM6pRO9OsWGOpzDnDOkGz8c1YP/fLOJaHcE/56exviBwblLNC7abV1kAbIEY4wJyIqCvawv3Mf1p/cLdSh+/X7yEBSYdnIvTunXOWivExftpnjfsS+42RZYgjHGBOTtZflEuSK4YFjwVk4+Fh1iI3nsipFBf52EaDeltthlQMJ1oqUxJoxUVXtIzyrgjOOTjmqJldYkLtrNvkpLMIGwBGOMqVf+ngP8/L9LKSytCMnSMOGmZgzGO2XP1Me6yIwxflVWeXj+64088ck6AH4z6fig3JXV0iTEuDlYrVRUeYiJbL6FPlsiSzDGmCN8t6GIu9/JYd3OMs4Z3JV7Jg+m53HhdedYqMQ5q0fvq6iyBNMASzDGmEMKSyv489xVvLUsn57HteO56WmcdYLfhcnbrO8XvKymc+CbYbZJlmCMMVR7lFcXbubheWsoP1jNL84cwE0TBjTrXi8tRYKzJ0xpxcEGahpLMMYY/vj+Sl74ehOnDejM/VOH0r8R+9S3Nb4tGFM/SzDGtHHfrN/FC19v4ppT+3D/1CFhs8ZYuLI9YQJntykb04aVVVRx5+zlpHSO5a7zj7fkEoAE29UyYNaCMaYN+9P7q8jfc4A3f/YDYqPs10Eg4izBBMxaMMa0UfPXFvLaoi3cMLYfaSlHt0d9W2RdZIGzBGNMG1Ry4CC/mb2cAV3iuX3iwFCH06LUzIOxFkzDLMEY0wbd/95KCssqeOSyETZZsJHcrgjaRbooswUvG2QJxpg25uOVO5izNI+fj+/PiF4dQx1Oi2QLXgbGEowxbcjufZXc9VY2x3dL4NazUkMdTosVH+2izObBNMhuGzGmDbknfQV79lfy4k9OJsptf18erfgYN2XlNpO/IfY/zJg2Ym72Nt7LKuDWs1IZktwh1OG0aHFRbpvJH4CgJhgRmSQia0QkV0Rm+jkeLSKznOMLRSTFKU8RkQMikul8Pe2UJ/iUZYrILhF53Dl2nYgU+hz7aTDfmzEtya6yCn73Tg7DenTg5xP6hzqcFi8+2m13kQUgaF1kIuIC/gFMBPKAxSKSrqorfapdD+xW1QEiMg14CLjCObZeVQ/b/1RVS4FDZSKyBHjLp8osVb2l6d+NMS1XUVkFN72ylLLyKh65fASRLuu4OFbxMW7KdlqCaUgw/6eNBnJVdYOqVgKvA1Nr1ZkKvOg8ng2cJQGuVSEiA4EuwJdNFK8xrU7m1j1c+PevyMzbw18uG87ArgmhDqlVqNnV0tQvmAmmB7DV53meU+a3jqpWASVAZ+dYXxFZJiLzRWSsn+tPw9ti8d239BIRWS4is0Wkl7+gRGSGiGSISEZhYeFRvC1jwp+q8urCLVz+9LdEiPDWz8cwdaRtd9xUrIssMOHaVt4G9FbVUcDtwKsi0r5WnWnAaz7P3wNSVHU48DHft4wOo6rPqGqaqqYlJSUFIXRjQqv8YDV3zl7Ob9/O5tT+nfnfL05naA8b1G9K8dFuKqo8HKz2hDqUsBbMBJMP+LYiejplfuuIiBvoABSpaoWqFgGo6hJgPXBoPQsRGQG4nWM49YpUtcJ5+ixwUtO+HWPC39bi/Vz69De8uSSPW88cwAvXncxxcVGhDqvVsfXIAhPMBLMYSBWRviIShbfFkV6rTjow3Xl8KfCZqqqIJDk3CSAi/YBUYIPPeVdyeOsFEenu83QKsKrJ3okxLcCCtYVMfvIrNhft59lr07j9nEG4Imz5/WCIj7b1yAIRtLvIVLVKRG4B5gEu4HlVXSEi9wMZqpoOPAe8LCK5QDHeJAQwDrhfRA4CHuBGVS32ufzlwPm1XvJWEZkCVDnXui5Ib82YsOLxKP/8IpdHPl7LwC4J/Ouak0hJjAt1WK2a7WoZmKDO5FfVucDcWmX3+DwuBy7zc94cYE491+3np+wu4K5jideYlqbkwEF+9UYWn6zawZQRyTx4yTDb16UZxB/aE8Zm89fH/ica00Kt2V7Kz17OIG/3Ae6dPJjpY1JsR8pm8n2CsRZMfSzBGNMCvZuZz8w52cTHuHltxqmcbBuGNSsb5A+MJRhjQmzRxmJ+PTuL0wckMmVEMiendCKijsH5g9UeHpi7ihe+3sTJKcfxj6tOpEv7mGaO2BxqwdieMPWyBGNMiH2yagd5uw/w1tJ8/rtwC907xHDh8O5MGdGDoT3aH+r22rm3nJtfXcriTbv58Wkp/Pb8E2zZlxD5vovMEkx9LMEYE2LZeSUMTW7PazNO5eOVO3gvq4D/fLOJf3+5kX6JcVw4IpkTuiVwT/oKysqreGLaSJuVH2LWRRYYSzDGhJCqklNQwuQRycRGuZk6sgdTR/Zgz/5KPsjZTnpmAX//bB2qkNI5lpevH83x3WovamGaW5Q7gih3BGW2q2W9LMEYE0JbivdTWl7FsFpLuXSMjeLK0b25cnRvduwtZ8nm3Zyemkj7mMgQRWpqi4922xhMAyzBGBNC2fklAEckGF9d28dw/rDudR43oREX7bIusgbYCKExIZSdX0KkS0jtGh/qUEwjxUW5bR5MAyzBGBNCK/L3MqhbAtFuV6hDMY2UEOO2mfwNsARjTIioKtn5JfV2j5nw5d10zFow9bEEY0yI5O0+QMmBgwxJtgTTEtmulg2zBGNMiOQEMMBvwldCtJtSSzD1sgRjTIhk55fgjhAGdUsIdSjmKFgLpmGWYIwJkez8EgZ2TSAm0gb4W6K4aDf7K6up9mioQwlblmCMCQFVZUXBXob2sFn5LVVCzXIxNpu/TpZgjAmBgpJyivdV2vhLC2brkTXMEowxIZCd5x3gH2oJpsWKi/Z2bVqCqZslGGNCYEVBCa4I4YTu1kXWUiXE2K6WDbEEY0wIZOeXkNol3gb4W7C4KNt0rCFBTTAiMklE1ohIrojM9HM8WkRmOccXikiKU54iIgdEJNP5etrnnC+ca9Yc61LftYwJN6pKTn6JdY+1cHG26ViDgraasoi4gH8AE4E8YLGIpKvqSp9q1wO7VXWAiEwDHgKucI6tV9WRdVz+alXNqFVW37WMCRs79lawq6ySocnWPdaSxdsgf4OC2YIZDeSq6gZVrQReB6bWqjMVeNF5PBs4S2r2h228pryWMUFzaIn+ntaCacniY6wF05BgJpgewFaf53lOmd86qloFlACdnWN9RWSZiMwXkbG1znvB6R672yeJ1HetQ0RkhohkiEhGYWHhMbw9Y45Odn4JEYIN8Ldw8dZF1qBwHeTfBvRW1VHA7cCrIlLz03i1qg4Dxjpf1zTmwqr6jKqmqWpaUlJSkwZtTCBy8kvonxRPbJTt99eSRbsjcEWIdZHVI5gJJh/o5fO8p1Pmt46IuIEOQJGqVqhqEYCqLgHWAwOd5/nO91LgVbxdcXVeq8nflTHHKMeW6G8VRMS7bbIlmDoFM8EsBlJFpK+IRAHTgPRaddKB6c7jS4HPVFVFJMm5SQAR6QekAhtExC0iiU55JHAhkFPftYL03ow5Kjv3lrOztMLuIGslLMHUL2htdFWtEpFbgHmAC3heVVeIyP1AhqqmA88BL4tILlCMNwkBjAPuF5GDgAe4UVWLRSQOmOckFxfwCfBv55y6rmVM2LAB/tYlLtplXWT1CGonsKrOBebWKrvH53E5cJmf8+YAc/yU7wNOquO1/F7LmHCSk78XERhsA/ytgrVg6heug/zGtErZ+SX0S4w7NEnPtGxx0W5bKqYelmCMaUY2wN+6xNumY/VqVIIRkdhgBWJMa1dYWsH2veU2wN+KWIKpX0AJRkTGiMhKYLXzfISI/DOokRnTyuQU2BL9rU1ctNsWu6xHoC2Yx4BzceaVqGoW3ju9jDEBynH2gBlia5C1GvHRbvZVVmEzIvwLuItMVbfWKrKRLWMaIaeghL6JcSTERIY6FNNE4qLdeBQOHLRfh/4EmmC2isgYQEUkUkTuAFYFMS5jWp2c/L3WPdbKHFrw0rrJ/Ao0wdwI3Ix3Qcl8YKTz3BgTgOJ9leTvOcCwHtY91prEO9sm21wY/xq8Gd9ZsuUaVb26GeIxplXKcWbwD022FkxrUrOr5T6bC+NXgy0YVa3myH1cjDGOrK17WL19b711apaIGWJdZK1KTRdZacXBEEcSngKdTvy1iDwJzAL21RSq6tKgRGVMC7GhsIwrnvmWyioP15zah9vPGUSHdkcO4ufkl9Cnc6zfY6bl+n5XS2vB+BNoghnjfL/fp0yBM5s2HGNajmqPcsebWUS7XVw8qicvfbeZ97O387sLTmDqyGR8N1TNKShheM+OIYzWBEOcbZtcr4ASjKqeEexAjGlp/v3lBpZu2cMT00YydWQPrhrdm9+9k81tszJ5ffEW/njRUAZ0SWDP/kq2Fh/gqtF9Qh2yaWIJtqtlvQJKMCJyj79yVb3fX7kxrd3aHaU8+tFaJg3pxpQRyYB3Cf63bjqN1xZt4eEPV3PeE1/y07H9OLH3cd7jNv7S6sRZgqlXoF1k+3wex+Dd6MvmwZg26WC1h1+9kUV8jJs/Xjz0sK4wV4Two1P7MGloN/48dzVPfbEed4T3+FC7RbnViY1yIWJdZHUJtIvsEd/nIvJX4N2gRNRCFO+rpFNcVKjDMCHw1Bfryc4v4Z9Xn0hifLTfOonx0Txy+QiuOLkXd7+TQ3RkBB1j7f9LayMixEfZnjB1OdpNKWKB/k0ZSEvy7JcbeHr+eub8fAx9OseFOhzTjFYUlPC3T9cxeUQy5w/r3mD90X078eFtY/HYUlWtli14WbdAV1POFpHlztcKYA3wRHBDC19nHN+FKo9y3QuLKd5XGepwTDOprPJ2jR0XF8X9U4YEfJ6I4IqQhiuaFiku2sW+Sksw/gS6VMyFwGTn6xwgWVWfDFpUYa5/UjzPXptGwZ4DXP/iYg5U2j3wbcHfPl3H6u2l/PniYRxn3aPGEW+7WtYp0ATjBrar6mYgFbhJRNr0Tf1pKZ14YtpIMrfu4ZevL6Pa+kBatayte3hq/nouObEnZw/uGupwTBiJj3FTVm4z+f0JNMHMAapFZADwHNAXeLWhk0RkkoisEZFcEZnp53i0iMxyji8UkRSnPEVEDohIpvP1tFMeKyLvi8hqEVkhIg/6XOs6ESn0OeenAb63ozZpaHd+f+FgPlq5g/veW2F7QrRS5Qer+dWbWSTFR3PP5MGhDseEmbgot83kr0Ogg/weVa0SkR8Cj6vq30VkWX0nOItk/gOYCOQBi0UkXVVX+lS7HtitqgNEZBrwEHCFc2y9qo70c+m/qurnIhIFfCoi56nqB86xWap6S4DvqUlcd1pfCkrKeWbBBpI7tuPG8W323odW69GP15K7s4wXfzLalnoxR/B2kdkYjD+BtmAOisiVwLXA/5yyhn7SRgO5qrpBVSuB1zly0cypwIvO49nAWeI7qaAWVd2vqp87jyuBpUDPAN9D0MycdDwXDu/Ogx+s5t3M/FCHY5pQdl4J//5yA1eO7s34gUmhDseEofgYSzB1CTTB/Bj4AfAnVd0oIn2Blxs4pwfguwtmnlPmt46qVgElQGfnWF8RWSYi80VkbO2LO2NAk4FPfYovce50my0ivfwFJSIzRCRDRDIKCwsbeAuBiYgQHrl8BKf07cQdb2bxzfpdTXJdE1oej/K7d3PoHBfNXecfH+pwTJiKi3azr8K2TfYnoASjqitV9VZVfU1EjgMSVPWhIMa1DeitqqOA24FXReTQNGgRcQOvAX9T1Q1O8XtAiqoOBz7m+5ZR7ffyjKqmqWpaUlLT/UUa7XbxzLVp9E2M42cvLWlw+XYT/l5fvJWsrXv4fxccT3vb5tjUIT7aTZVHqajyhDqUsBPoWmRfAFOc+plAoYjMV9Xb6zktH/BtRfR0yvzVyXOSRgegSL1/ClQAqOoSEVkPDAQynPOeAdap6uM1F1LVIp/rPgs8HMh7a0od2kXywo9H88N/fs21zy1idN9OddaNEOGM45OYMqKHzZEIQ8X7Knl43mpG9+3ERSNrN7yN+V68z4rKMZGuEEcTXgId5O+gqnudO7NeUNXfi8jyBs5ZDKQ63Wn5wDTgqlp10oHpwLfApcBnqqoikgQUq2q1iPTDe2v0BgAR+SPeRHTYXWIi0l1VtzlPpxCitdJ6dGzHC9eN5q63s1m5re5WzP6KatKzCnjqi/XcPnEQ5w7pSj3DT6aZPfzhakrLq/jD1KH272Lq5bvgZec6lg5qqwJNMG4R6Q5cDvy/QE5w7jq7BZgHuIDnVXWFiNwPZKhqOt5bnl8WkVygGG8SAhgH3C8iBwEPcKOqFotIT+f1VwNLnR/8J1X1WeBWEZkCVDnXui7A99bkBie3592bT6u3jsejfJCznUc+XsONryxhRM8O3HHuIE4fkGi/0EJs6ZbdvL54KzeM7cugbgmhDseEufhob6vFBvqPFGiCuR9vovhaVRc7rYp1DZ2kqnOBubXK7vF5XA5c5ue8OXjn3tQuzwP8/vZV1buAuxqKKVxERAgXDO/OuUO68tayfJ74ZB3XPLeIU/t14tfnDuKkPnV3r5ngqfYod7+TQ9f20fzy7IGhDse0APHR3vE5mwtzpEAH+d9U1eGq+nPn+QZVvSS4obUNblcEl6f14rM7xnPflCHk7tzHJU99y0/+s5j1hWWhDq/N+e/Czawo2MvdFw4+1LduTH3iDrVgbDZ/bYEudjlQRD4VkRzn+XAR+V1wQ2tbot0upo9JYcGdE7hz0iAyNhUz46UMPLYETbMpLK3gL/PWcPqARC4IYKVkY+D7QX5bj+xIgc6D+Tfe7qeDAKq6nO/HS0wTio1yc9OEAfzhoqGsL9zHp6t3hjqkNuPPH6yi/GA1900dYuNgJmBxPneRmcMFmmBiVXVRrTL7NIPogmHd6dGxHf+av/6ozi8tP8hri7ZQVW335gdi0cZi3lqazw1j+9E/KT7U4ZgWJD7GacHYnjBHCDTB7BKR/oACiMileCdDmiBxuyK4YWxfMjbvZsnm4kaf/8hHa7nrrWzeW14QhOhal4PVHu5+J4ceHdtxy5kDQh2OaWHior6/TdkcLtAEczPwL+B4EckHbgNuDFpUBoDLT+5Fx9hI/jV/Q8OVfWzatY9XvtsMwL/mb7AlLBrw4jebWLOjlLsvHExslA3sm8ZxRQjtIl3WReZHgwlGRCKANFU9G0gCjlfV0529YUwQxUa5ufbUPny8akej7ij7y0driHJHcOekQazeXsr8tU2z5lprtHZHKY9/so4Jg5I4d4jt82KOji146V+DCUZVPcAtzuN9qloa9KjMIdeOSSHKFcFKraUOAAAbCUlEQVSzXwbWilm2ZTfvL9/GDWP78dPT+9G1fTTPLGhcC6gt8HiUF77eyOS/f0W0O4L7ptjAvjl6tmS/f4F2kX0sIneISC8R6VTzFdTIDACJ8dFcelJP5izJZ2dpeb11VZU/z11NYnw0N4zrR5Q7gp+c1pdv1heRnVfSTBGHv20lB7j2+UXc995KTh+QyIe3jaNP57hQh2VasLho6yLzJ9AE8xPgJmA+3gUna75MM7hhbD8Oejy8+M2meut9smonizYVc9vZqYfuzb/ylN4kRLv514KjuxuttUnPKuDcxxawdMtu/vzDYTw7PY2kBFs/yhyb+Gjb1dKfQBPMYLy7U2bhXU3578CQYAVlDpeSGMekId14+dvNdTbDq6o9PPjBKvolxXHFyd8vYt0+JpKrTunN3OxtbCna31whh52S/Qe59bVl3PraMvp3iWfurWO5cnRv6xYzTSI+2k2ptWCOEGiCeRE4Afgb3uQymDr2WzHBMWNcP/aWVzFr8Va/x9/IyGN94T5+M+l4Il2H/7P++LS+uCKE575qm2MxX+fuYtITC5ibvY1fTRzImz/7ASmJ1iVmmk7NpmPmcIEmmEGq+lNV/dz5ugEYFMzAzOFG9T6O0X078dyXGzhYa/LkvooqHvtkLWl9juOcwUfeCdWtQwwXjezBrIytFO+rbK6QQ87bqlvN1c8upF2Ui7duGsMvzkrF7Qr0v70xgYm3BONXoD9py0Tk1JonInIK8HVwQjJ1uXF8PwpKyvlfrcmTz365kcLSCu46/4Q6u3xmjOtH+UEPL327KfiBhoGisgqufX4RT89fz5Wje/P+L8YyvGfHUIdlWinrIvMv0ARzCvCNiGwSkU14NwibICLZAWw8ZprIhIFdSO0Sf9jkycLSCv61YD3nDe3GSX2Oq/Pc1K4JnHV8F176djMHKlv3YGTm1j1c+PevyNi8m4cvHc6ffziMdlG206AJnrhoN5VVniN6F9q6QBPMJKAvMN756gucB1wITA5OaKa2iAhhxrh+rN5eyoJ1uwB44tO1VFZ5+PW5DfdYzhjXj+J9lcxe4n8cp6VTVV5duIXLn/4WV4Tw1s/HcHlar4ZPNOYY2YKX/gW6H8zm+r6CHaT53tSRPZzJk+tZX1jGa4u2ctUpvekXwAKNo/t2YmSvjvz7y41Ut7JtAMoPVvObOcv57dvZnNq/M+/dcjpDe3QIdVimjUhwEkypLXh5GBvtbGFqJk9+nVvEL15dRow7glvPSg3oXBHhxvH92FK8nw9ztgc50uaztXg/lz79DW9k5HHrmQN44bqTOS4uKtRhmTbkUAum0hKML0swLVDN5MmV2/Zy4/j+JMYHPlFw4uBupHSO5V8L1reKRTC/21DE5Ce/YnPRfp69No3bzxmEK8LmtpjmVbOrpXWRHc4STAvUPiaSn47tR5/OsVw/tm+jznVFCDeM68fyvBK+29D4bQDCzd3v5NCxXSTv3XI6Z/u5RduY5pAQY11k/liCaaF+eXYqX9wx4aiWl7/kxJ50jotq8cvHFOw5wLqdZfzo1D42cdKE1PeD/K37Ds3GCmqCEZFJIrJGRHJFZKaf49EiMss5vlBEUpzyFBE5ICKZztfTPuec5NwenSsifxNn4oezAOfHIrLO+V73PbutxNEucxIT6eK6MSl8saaQ1dv3NnFUzWeBsw3B+IFJIY7EtHU1m45ZF9nhgpZgRMSFd/2y8/AuLXOliAyuVe16YLeqDgAeAx7yObZeVUc6X76bmz0F3ACkOl+TnPKZwKeqmgp86jw3dbjmB32IjXLx9BcttxUzf20hyR1iGNDFtjg2oVXTRWZL9h8umC2Y0UCuqm5Q1UrgdWBqrTpT+X5Ns9nAWVLPn+Ui0h1or6rfqXeE+iXgIj/XetGn3PjRMTaKq0/pTXpWAZuL9oU6nEarqvbwVe4uxg1MsgUrTcjVdJFZgjlcMBNMD8B3Rl+eU+a3jqpWASVAZ+dYXxFZJiLzRWSsT/28Oq7ZVVW3OY+3A35HfEVkhohkiEhGYWHb3unxhrH9cEdE8HQjt2QOB5lb91BaXmXdYyYsRLoiiHJHWBdZLeE6yL8N6K2qo4DbgVdFpH2gJzutG7/34KrqM6qapqppSUlt+5dTl/YxXJbWkzlL8theUv9mZuFm/tpCXBHCmAGJoQ7FGMA72dJaMIcLZoLJB3zX6ejplPmtIyJuoANQpKoVqloEoKpLgPXAQKd+zzquucPpQqvpStvZpO+mlbpxfH+qVfl3gFsyh4v5aws5sXdHOrSLDHUoxgDebjJLMIcLZoJZDKSKSF8RiQKmAem16qQD053HlwKfqaqKSJJzkwAi0g/vYP4Gpwtsr4ic6ozVXAu86+da033KTT16dYpl6ohkXl24pcUs5V9UVkF2fgnjUtt2C9SEF9sT5khBSzDOmMotwDxgFfCGqq4QkftFZIpT7Tmgs4jk4u0Kq7nzaxywXEQy8Q7+36iqNbMCbwKeBXLxtmw+cMofBCaKyDrgbOe5CcBNZ/SnvKqaF77eGOpQAvJV7i5UYfwgSzAmfMRHu6wFU0vjZ+k1gqrOBebWKrvH53E5cJmf8+YAc+q4ZgYw1E95EXDWMYbcJg3oksCkId34zzebuGFcP9rHhHe30/w1hXSKi2Josi1macJHfLSbwrKKUIcRVsJ1kN80s5smDKC0vIpXvgvvxbE9HmXBukLGpiYSYWuOmTDi7SKzmfy+LMEYAIb17MD4gUk89+XGsN6QbOW2vewqq7Tbk03YibdB/iNYgjGH3HzGAIr2VTJr8ZZQh1Kn+c7yMGNtgN+EmXgb5D+CJRhzyOi+nRid0ol/LdhAZVV4bv06f20hQ3u0Jykh8C0KjGkOcdFu9ldWt7rN/I6FJRhzmJvO6M+2knLeWVZ7ylLo7S0/yNLNu+32ZBOW4m3TsSNYgjGHGT8wiaE92vPU/PVh95fYN7lFVHnUxl9MWIqPCWxF5S1F+yk/GL7jnE3JEow5jIhw84QBbNy1j7nZ2xo+oRktWFdIfLSbE/u0+p0YTAt0aMHLejYdKyqrYOJj83nsk7XNFVZIWYIxRzh3SDcGdInnH5/nhs22yqrK/DWFjOnfmUiX/bc14Sfe2Ta5vjvJ3l6WT0WVh3eXFeAJsx6CYLCfVHOEiAjhpgn9Wb29lE9XhceSbusL95G/54DN3jdhKz7aO0G5rrkwqsobGVuJiYxg+95yFm1q+VuWN8QSjPFr8ohkeneK5YG5q8JiXkzN7ck2wG/CVdyhFsxBv8eX55WwdkcZd5wziHaRLt7NLGjO8ELCEozxK9IVwZ9/OIwNu/bxl3lrQh0OC9YW0j8pjl6dYkMdijF+xR/adMz/H2Q1rZfLT+7FxMFd+SBnW9hOB2gqlmBMnU4bkMg1p/bhhW82snBDUcjiKD9YzXcbihhnd4+ZMFYzyO/vLrIDldWkZxZw/tDutI+JZMqIZPbsP8hXua1700NLMKZeM887nl7HxXLH7KyQzVJeuLGYiiqP3Z5swlp8Pdsmz1uxndKKKi5L826RNW5gEh3aRZLeyrvJLMGYesVFu/nrZSPI232AP3+wKiQxLFhbSLQ7glP7dW64sjEhEu2OwB0hfhPMGxlb6d0pllP6dgIgyh3BeUO78dHKHWExxhkslmBMg0b37cRPTuvLK99t4at1u5r99eevLWR0307ERLqa/bWNCZSI+N10bGvxfr5ZX8RlJ/U8bAXwKSOS2V9ZzaerdzR3qM3GEowJyK/PHUS/pDjunJ3F3nL/d8kEQ97u/eTuLLPuMdMi+FtR+c0leYjAJSf1PKz8lH6d6ZIQ3aq7ySzBmIDERLp45LIRbN9bzh//t7LZXnfBWm+LaYLNfzEtQHy0+7CZ/NUeZXbGVsamJpHcsd1hdV0RwoXDk/liTSElB5rvj7bmZAnGBGxU7+P42fj+vJGRx2fN1KxfsLaQHh3b0T8pvllez5hjERftOmyxy2/W76KgpJzL03r6rT9lZDKV1R7mrdjeXCE2K0swplFuOzuVQV0TmDknmz37K4P2OlXVHp79cgOfrdnJuIFJiNjulSb8xcdEHjYP5o2MPDrGRjJxcFe/9Uf07ECfzrG8l9U6u8kswZhGiXa7eOTyERTvq+Te9BVBeY2MTcVc+Pev+OP7qxjTvzP/d3ZqUF7HmKYWH+2izBmj3LO/knkrtnPRyB5Eu/3foCIiTB6ezNe5u9hZWt6coTaLoCYYEZkkImtEJFdEZvo5Hi0is5zjC0Ukpdbx3iJSJiJ3OM8HiUimz9deEbnNOXaviOT7HDs/mO+tLRvaowM3nzGAdzILSM8qaLIFMYv3VXLn7Cwuffpb9h44yNM/OokXrjuZLu1jmuT6xgRbXJT70Fpk6VkFVFZ5uKyO7rEaU0Ym41GYuzy8Vi9vCu5gXVhEXMA/gIlAHrBYRNJV1XeE+Hpgt6oOEJFpwEPAFT7HHwU+qHmiqmuAkT7Xzwfe9qn/mKr+NRjvxxzuljMH8MmqHdz62jL+PHcVP+jfmdP6J3LagES6dWhcQvB4lFkZW3now9WUlVfxs/H9uPXM1EMzo41pKeJjvr9N+Y2MrQxJbs+Q5A71njOwawLHd0sgPauA607r2xxhNptg/gSPBnJVdQOAiLwOTAV8E8xU4F7n8WzgSRERVVURuQjYCOyr4/pnAetVdXMwgjf1i3RF8N+fnsL72dv4JreIz1fv5K2l3l0w+yXFcVr/RMb078yo3scR5a67obyleD/3pq8gc+seRvftxB8vGsrArgnN9TaMaVLx0W7KKqvIyS8hJ38v900ZEtB5k0ck85d5a9havL9VrbcXzATTA9jq8zwPOKWuOqpaJSIlQGcRKQd+g7f1c0cd158GvFar7BYRuRbIAH6lqrtrnyQiM4AZAL17927UGzKH6xgbxdWn9OHqU/rg8Sirtu/lm9wivl6/izlL83j5u8Byf2J8FI9ePoKLR/WwwXzTosVFu1GFl7/dTJQrgqkjkwM6b4qTYN5bXsBNEwYEOcrmE659EPfi7e4q8/cLR0SigCnAXT7FTwF/ANT5/gjwk9rnquozwDMAaWlprX/Hn2YSESEMSe7AkOQO3DCuH5VVHpbn7WHVtr3Ut69SlDuC84d2p0NsZPMFa0yQ1HTrvp2ZzzlDutIxNiqg83p1imVU746kZ1qCCVQ+0MvneU+nzF+dPBFxAx2AIrwtnUtF5GGgI+ARkXJVfdI57zxgqaoemozh+1hE/g38r4nfj2mEKHcEaSmdSEvpFOpQjGk2CU6CqazycHlarwZqH27KiGTue28l63aUktpKuomDeRfZYiBVRPo6LY5pQHqtOunAdOfxpcBn6jVWVVNUNQV4HHjAJ7kAXEmt7jER6e7z9GIgp+neijHGNKymBZPcIYbTBiQ26twLhncnQrx3n7UWQUswqloF3ALMA1YBb6jqChG5X0SmONWewzvmkgvcDhxxK3NtIhKHd2zmrVqHHhaRbBFZDpwB/F8TvRVjjAlIza6Wl57UE1dE48YTuyTEMKZ/YpPe+h9qQR2DUdW5wNxaZff4PC4HLmvgGvfWer4POGLddlW95lhiNcaYYzW8Z0euSOvFNT9IOarzp4xI5s45y1meV8KIXh2bNrgQsJn8xhjTROKj3Tx06XCSEqKP6vxzh3YjyhXBs19tbBX7xFiCMcaYMNGhXSQ/OrUP72UVMP4vn/Pyd5uprPKEOqyjZgnGGGPCyD2TBzNrxqn06RzL3e/kcNajX/DW0jyq67vfP0xZgjHGmDBzSr/OvPGzH/CfH59M+5hIbn8ji0mPL+DDnG0t6gYASzDGGBOGRIQJg7rw3i2n88+rT8Sjyo2vLGXqP75m4YaiUIcXEEswxhgTxiIihPOHdWfebeP4y6XDKSqr5NrnFzXr1uVHyxKMMca0AG5XBJel9eLvV42iosrDvJzw3wXTEowxxrQgo3p1pFendi1ixr8lGGOMaUFEhCkjkvlmfRGFpRWhDqdelmCMMaaFmTKiB9UeZW52eO+CaQnGGGNamEHdEhjUNSHsu8kswRhjTAs0ZWQySzbvJm/3/lCHUidLMMYY0wJNHu7dLfO9rPDtJrMEY4wxLVDvzrGM7NUxrLvJLMEYY0wLNWVEMqu27SV3Z2moQ/HLEowxxrRQF9bsgpkZnq0YSzDGGNNCdWkfww/6dw7bXTAtwRhjTAs2ZUQym4r2k51fEupQjmAJxhhjWrBJQ7oT6ZKw7CazBGOMMS1Yh9hIxg/swnvLC8JuU7KgJhgRmSQia0QkV0Rm+jkeLSKznOMLRSSl1vHeIlImInf4lG0SkWwRyRSRDJ/yTiLysYisc74fF8z3Zowx4WLKyGR27K1g0cbiUIdymKAlGBFxAf8AzgMGA1eKyOBa1a4HdqvqAOAx4KFaxx8FPvBz+TNUdaSqpvmUzQQ+VdVU4FPnuTHGtHpnn9CFdpGusJsTE8wWzGggV1U3qGol8DowtVadqcCLzuPZwFkiIgAichGwEVgR4Ov5XutF4KJjiN0YY1qM2Cg3Ewd35YOcbVRWeUIdziHBTDA9gK0+z/OcMr91VLUKKAE6i0g88BvgPj/XVeAjEVkiIjN8yruqas2aCduBrv6CEpEZIpIhIhmFhYWNfU/GGBOWpoxIZs/+g3yVGz6/18J1kP9e4DFVLfNz7HRVPRFv19vNIjKudgX13hDud7RLVZ9R1TRVTUtKSmrKmI0xJmTGDUyiQ7vIsLqbLJgJJh/o5fO8p1Pmt46IuIEOQBFwCvCwiGwCbgN+KyK3AKhqvvN9J/A23q44gB0i0t25VndgZ9O/JWOMCU9R7gjOH9aNj1bu4EBldajDAYKbYBYDqSLSV0SigGlAeq066cB05/GlwGfqNVZVU1Q1BXgceEBVnxSROBFJABCROOAcIMfPtaYD7wbrjRljTDiaPCKZ/ZXVfLp6R6hDAYKYYJwxlVuAecAq4A1VXSEi94vIFKfac3jHXHKB22n4zq+uwFcikgUsAt5X1Q+dYw8CE0VkHXC289wYY9qMU/p2pktCdNh0k0k4rl/TXNLS0jQjI6PhisYY00Lc/95KXvluM3+6eCjnDu1G+5jIJn8NEVlSa5qIX+E6yG+MMeYoTB/Th+4dY/j17OWk/fETfvZyBu8v30b5weYfl3E3+ysaY4wJmj6d4/jijgks27qH9MwC/rd8G/NW7CA+2s05g7syeWQypw9IJNIV/PaFdZFZF5kxphWrqvbw3YZi0rPy+SBnO6XlVXSKi+L3kwczdWTtqYmBCbSLzFowxhjTirldEZyemsjpqYn84aKhzF9TSHpWAckd2wX/tYP+CsYYY8JCtNvFOUO6cc6Qbs3yejbIb4wxJigswRhjjAkKSzDGGGOCwhKMMcaYoLAEY4wxJigswRhjjAkKSzDGGGOCwhKMMcaYoGjTS8WISCGw+ShPTwR2NWE4wdASYoSWEafF2DQsxqYR6hj7qGqDWwK36QRzLEQkI5C1eEKpJcQILSNOi7FpWIxNoyXECNZFZowxJkgswRhjjAkKSzBH75lQBxCAlhAjtIw4LcamYTE2jZYQo43BGGOMCQ5rwRhjjAkKSzDGGGOCwhLMURCRSSKyRkRyRWRmqOPxR0Q2iUi2iGSKSFjsCy0iz4vIThHJ8SnrJCIfi8g65/txYRjjvSKS73yWmSJyfohj7CUin4vIShFZISK/dMrD5rOsJ8Zw+yxjRGSRiGQ5cd7nlPcVkYXOz/gsEYkKwxj/IyIbfT7LkaGKsS42BtNIIuIC1gITgTxgMXClqq4MaWC1iMgmIE1Vw2bCmIiMA8qAl1R1qFP2MFCsqg86yfo4Vf1NmMV4L1Cmqn8NVVy+RKQ70F1Vl4pIArAEuAi4jjD5LOuJ8XLC67MUIE5Vy0QkEvgK+CVwO/CWqr4uIk8DWar6VJjFeCPwP1WdHYq4AmEtmMYbDeSq6gZVrQReB6aGOKYWQVUXAMW1iqcCLzqPX8T7Syhk6ogxrKjqNlVd6jwuBVYBPQijz7KeGMOKepU5TyOdLwXOBGp+cYf6s6wrxrBnCabxegBbfZ7nEYY/OHj/A34kIktEZEaog6lHV1Xd5jzeDnQNZTD1uEVEljtdaCHtxvMlIinAKGAhYfpZ1ooRwuyzFBGXiGQCO4GPgfXAHlWtcqqE/Ge8doyqWvNZ/sn5LB8TkegQhuiXJZjW63RVPRE4D7jZ6foJa+rtrw3Hv8yeAvoDI4FtwCOhDcdLROKBOcBtqrrX91i4fJZ+Ygy7z1JVq1V1JNATbw/F8SEO6Qi1YxSRocBdeGM9GegEhKxruS6WYBovH+jl87ynUxZWVDXf+b4TeBvvD0442uH019f02+8McTxHUNUdzg+4B/g3YfBZOn3xc4D/qupbTnFYfZb+YgzHz7KGqu4BPgd+AHQUEbdzKGx+xn1inOR0Q6qqVgAvEEafZQ1LMI23GEh17jKJAqYB6SGO6TAiEucMrCIiccA5QE79Z4VMOjDdeTwdeDeEsfhV80vbcTEh/iydQd/ngFWq+qjPobD5LOuKMQw/yyQR6eg8bof35p1VeH+JX+pUC/Vn6S/G1T5/TAjeMaKw+xm3u8iOgnNr5eOAC3heVf8U4pAOIyL98LZaANzAq+EQo4i8BkzAu9T4DuD3wDvAG0BvvFsnXK6qIRtkryPGCXi7dBTYBPzMZ6yj2YnI6cCXQDbgcYp/i3eMIyw+y3pivJLw+iyH4x3Ed+H9g/sNVb3f+Rl6HW/X0zLgR05LIZxi/AxIAgTIBG70uRkgLFiCMcYYExTWRWaMMSYoLMEYY4wJCkswxhhjgsISjDHGmKCwBGOMMSYoLMEY00xEpKOI3OQ8ThaRsF2k0JimYLcpG9NMnDW5/lezSrMxrZ274SrGmCbyINDfWbRwHXCCqg4VkevwzsR2AUPxrs8VBVwDVADnq2qxiPQH/oF3ct1+4AZVXd38b8OYwFgXmTHNZyaw3lm08Ne1jg0FrsK7ntSfgP2qOgr4FrjWqfMM8AtVPQm4A/hns0RtzFGyFowx4eFzZ9+UUhEpAd5zyrOB4c6qxGOAN71LTwEQdsuzG+PLEowx4cF3nSuPz3MP3p/TCLx7lITdtrjG1MW6yIxpPqVAwtGc6OylslFELgPvCroiMqIpgzOmqVmCMaaZqGoR8LWI5AB/OYpLXA1cLyJZwApsq24T5uw2ZWOMMUFhLRhjjDFBYQnGGGNMUFiCMcYYExSWYIwxxgSFJRhjjDFBYQnGGGNMUFiCMcYYExT/H1Fs+6KxrItDAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xaa749e90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import time\n",
    "pressure = []\n",
    "temperature = []\n",
    "time.sleep(2)\n",
    "sample = 2\n",
    "while (sample):\n",
    "    while (barometer.fifo_empty() == 0):\n",
    "        x= barometer.read_fifo()\n",
    "        if(x & 1):\n",
    "            pressure_raw = x\n",
    "        else:\n",
    "            temperature_raw = x\n",
    "        pressure.append(barometer.calculate_pressure(temperature_raw,pressure_raw))\n",
    "        temperature.append(barometer.calculate_temperature(temperature_raw,pressure_raw))\n",
    "    time.sleep(1)\n",
    "    sample = sample - 1\n",
    "    \n",
    "\n",
    "plt.plot(range(len(temperature)), temperature)\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"temperature\")\n",
    "plt.show()\n",
    "\n",
    "plt.plot(range(len(pressure)), pressure)\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"pressure\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright (C) 2021 Xilinx, Inc\n",
    "\n",
    "SPDX-License-Identifier: BSD-3-Clause"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
